SpringBoot多文件配置根据环境加载不同配置 |
您所在的位置:网站首页 › spring boot修改端口号 › SpringBoot多文件配置根据环境加载不同配置 |
各位看官可以关注博主个人博客,了解更多信息。 作者:Surpasser 链接地址:https://surpass.org.cn ![]() 在平时开发时,会发现公司的项目会不同的环境使用到不同的配置。如本地,测试,预发布,发布等环境,像数据库这些都要使用到不同的配置。如果只有一个配置文件,发布到不同环境的时候都要去修改一遍那简直就是遭罪,那么,如何实现SpringBoot根据需要去加载不同的配置文件? 项目构建SpringBoot提供简单配置能够让我们进行不同配置文件的加载。 创建Maven项目这里简单的常见一个用户类和控制器模仿一般的逻辑,获取用户的信息。 org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-weborg.springframeworkspring-webcom.google.code.gsongsoncom.alibabafastjson1.2.68用户类 public class User { private String username; private String address; private String email; private String id; private String message; public User(String id) { this.username = "张三"; this.address = "亚历山大"; this.email = "[email protected]"; this.id = id; } }控制器 @RestController public class Controller { @Value("${custom.value}") private String customValue; @RequestMapping(value = "/userInfo/{id}",method = RequestMethod.GET) public JSON getUserInfo(@PathVariable("id")String id){ User user = new User(id); user.setMessage(customValue); return JSONObject.parseObject(JSON.toJSONString(user)); } }启动器 @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }说明:这里利用Restful风格的请求方式,获取用户的个人信息,从配置文件中获取message复制给用户,然后以JSON的形式返回给页面。 这里来看配置配置文件 application.yml server: port: 8000 #指定端口号 custom: value: This Is Application #自定义的value值(message)利用postman请求发现没有问题,注意看属性message的值。 ![]() application-dev.yml server: port: 8001 #指定端口号 custom: value: This Is Application-dev ##自定义的value值(message)application-uat.yml server: port: 8002 #指定端口号 custom: value: This Is Application-uat #自定义的value值(message)application-pro.yml server: port: 8003 #指定端口号 custom: value: This Is Application-pro #自定义的value值(message)如果要启动使用不同的配置配置文件name就需要在application.yml中添加额外的配置 spring: profiles: active: uat这样在启动的时候就使用的是uat的配置了,启动查看message信息。 ![]() 我们可以看到message的信息就是application-uat.yml里面配置的,同时还能注意到当我们application.yml和application-uat.yml进行相同的配置是,SpringBoot会优先使用指定配置profiles的值。如果没有才会去application.yml里面找。 补充 Maven打包那么说到了SpringBoot加载不同的配置文件启动,那么不妨说一下Maven根据不同环境用不同的配置文件打包。 在pom.xml中添加配置: devdevuatuattrueproprosrc/main/resourcestrueapplication.ymlapplication-dev.ymlapplication-pro.ymlapplication-uat.ymlsrc/main/resourcestrueapplication-${env}.ymlapplication.yml配置完成后依次执行命令mvn clean ; mvn package进行打包,maven会根据你的配置去打包相应的文件,打包完成后如图包含的配置文件。 [图片上传失败…(image-5331af-1599820046417)] 使用postman去请求得到的结果,如图: ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |